Distributed storage systems may include a cluster of nodes, each capable of processing I/O requests and/or storing data. A node that receives an I/O request may be different from the node on which the requested data is stored. There is opportunity for data corruption within a storage device (e.g., disk or flash-based storage) and also on communication lines between the nodes.
Many distributed storage systems store data in fixed-size blocks (e.g., 8 KB blocks). Some distributed storage systems support “small” reads and writes, meaning I/O requests to read/write data that is smaller than a full block.